<?php

namespace app\shop\model\product;

use think\facade\Cache;
use app\common\model\product\Brand as BrandModel;

/**
 * 商品分类模型
 */
class Brand extends BrandModel
{
    /**
     * 添加新记录
     */
    public function add($data)
    {
        $data['app_id'] = self::$app_id;
        $this->deleteCache();
        return $this->save($data);
    }

    /**
     * 编辑记录
     */
    public function edit($data)
    {
        $this->deleteCache();
        !array_key_exists('image_id', $data) && $data['image_id'] = 0;
        return $this->save($data) !== false;
    }

    /**
     * 删除商品分类
     */
    public function remove($id)
    {
        // 判断是否存在商品
        if ($productCount = (new Product)->getProductTotal(['brand_id' => $id])) {
            $this->error = '该分类下存在' . $productCount . '个商品，不允许删除';
            return false;
        }
        // 判断是否存在子分类
//        if (static::hasSubCategory($id)) {
//            $this->error = '该分类下存在子分类，请先删除';
//            return false;
//        }
        $this->deleteCache();
        return $this->delete();
    }

    /**
     * 删除缓存
     */
    private function deleteCache()
    {
        Cache::delete('brand_' . static::$app_id);
        Cache::delete('brand_status' . static::$app_id);
        return true;
    }

    /**
     * 编辑记录
     */
    public function setStatus($data)
    {
        $this->deleteCache();
        return $this->save($data) !== false;
    }

}
